Angular অ্যাপ্লিকেশনে Highcharts ব্যবহার করে ডায়নামিক চার্ট তৈরি করা এবং তার ডেটা আপডেট ও রিফ্রেশ করার প্রক্রিয়া অত্যন্ত গুরুত্বপূর্ণ। এই ফিচারটি মূলত রিয়েল-টাইম ডেটা আপডেট করতে সাহায্য করে, যেমনঃ স্টক মার্কেট ডেটা, সেলস রিপোর্ট, সেন্সর ডেটা ইত্যাদি।
এখানে আমরা দেখব কিভাবে Angular অ্যাপ্লিকেশনে Highcharts চার্টের ডেটা আপডেট এবং রিফ্রেশ করা যায়।
ধরা যাক, আপনার চার্টে ডায়নামিক ডেটা লোড হচ্ছে, এবং আপনি চাইছেন এই ডেটা কিছু সময় পর পর রিফ্রেশ বা আপডেট হোক। Angular এ এটি করার জন্য, আপনি setInterval অথবা rxjs Observables ব্যবহার করতে পারেন।
এখানে আমরা দেখব কিভাবে setInterval ব্যবহার করে প্রতি ৫ সেকেন্ডে Highcharts চার্টের ডেটা আপডেট করা যায়।
import { Component, OnInit } from '@angular/core';
import * as Highcharts from 'highcharts';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
Highcharts = Highcharts; // Highcharts ব্যবহার করার জন্য
chartOptions: any; // চার্টের অপশন স্টোর করার জন্য
chartData = [10, 20, 30, 40, 50]; // ডিফল্ট ডেটা
ngOnInit() {
// প্রথমে চার্টের অপশন সেট করা
this.chartOptions = {
chart: {
type: 'line'
},
title: {
text: 'ডাইনামিক ডেটা দিয়ে আপডেট হওয়া চার্ট'
},
series: [{
name: 'Sales',
data: this.chartData
}]
};
// প্রতি ৫ সেকেন্ডে ডেটা পরিবর্তন করে চার্ট আপডেট করা
setInterval(() => {
// নতুন ডেটা তৈরি
this.chartData = this.chartData.map(data => data + Math.floor(Math.random() * 10));
// Highcharts এর মাধ্যমে চার্ট আপডেট করা
this.updateChart();
}, 5000); // প্রতি ৫ সেকেন্ডে আপডেট হবে
}
// Highcharts.chart() ব্যবহার করে চার্ট আপডেট করা
updateChart() {
Highcharts.charts[0].series[0].setData(this.chartData);
}
}
<div style="height: 400px;">
<highcharts-chart
[Highcharts]="Highcharts"
[options]="chartOptions"
style="width: 100%; height: 100%; display: block;">
</highcharts-chart>
</div>
setData()
মেথড ব্যবহার করে ডেটার নতুন মান চার্টে আপডেট করা হচ্ছে।আপনি যদি API থেকে রিয়েল-টাইম ডেটা ফেচ করতে চান, তাহলে Angular এর HttpClient ব্যবহার করতে পারেন। নিচে একটি উদাহরণ দেওয়া হলো:
import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import * as Highcharts from 'highcharts';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent implements OnInit {
Highcharts = Highcharts;
chartOptions: any;
chartData: any[] = [];
constructor(private http: HttpClient) {}
ngOnInit() {
this.chartOptions = {
chart: {
type: 'line'
},
title: {
text: 'API থেকে ডেটা আপডেট করা চার্ট'
},
series: [{
name: 'Sales',
data: this.chartData
}]
};
// প্রতি ৫ সেকেন্ডে API কল করে ডেটা আপডেট করা
setInterval(() => {
this.fetchData(); // API কল
}, 5000);
}
fetchData() {
// API থেকে ডেটা ফেচ করা
this.http.get<any[]>('https://api.example.com/data').subscribe(data => {
this.chartData = data.map(item => item.value); // API ডেটা থেকে সিরিজ ডেটা তৈরি
this.updateChart();
});
}
updateChart() {
Highcharts.charts[0].series[0].setData(this.chartData);
}
}
Highcharts এর সাথে Angular অ্যাপ্লিকেশনে ডায়নামিক ডেটা আপডেট এবং রিফ্রেশ করা খুবই সহজ। setInterval বা rxjs Observables ব্যবহার করে আপনি API থেকে রিয়েল-টাইম ডেটা ফেচ করতে পারেন এবং Highcharts.setData() ফাংশন ব্যবহার করে ডেটা আপডেট করতে পারেন। এই পদ্ধতি ব্যবহার করে আপনি ইন্টারঅ্যাকটিভ এবং রিয়েল-টাইম ডেটা ভিজ্যুয়ালাইজেশন তৈরি করতে পারবেন।
Read more